package cn.iocoder.yudao.module.infra.convert.config;

import cn.iocoder.yudao.common.pojo.PageResult;
import cn.iocoder.yudao.module.infra.repository.mybatis.domain.config.Config;
import cn.iocoder.yudao.module.infra.vo.config.ConfigCreateReqVO;
import cn.iocoder.yudao.module.infra.vo.config.ConfigExcelVO;
import cn.iocoder.yudao.module.infra.vo.config.ConfigRespVO;
import cn.iocoder.yudao.module.infra.vo.config.ConfigUpdateReqVO;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.factory.Mappers;

import java.util.List;

@Mapper
public interface ConfigConvert {

    ConfigConvert INSTANCE = Mappers.getMapper(ConfigConvert.class);

    PageResult<ConfigRespVO> convertPage(PageResult<Config> page);

    @Mapping(source = "configKey", target = "key")
    ConfigRespVO convert(Config bean);

    @Mapping(source = "key", target = "configKey")
    Config convert(ConfigCreateReqVO bean);

    Config convert(ConfigUpdateReqVO bean);

    @Mapping(source = "configKey", target = "key")
    List<ConfigExcelVO> convertList(List<Config> list);

}
